home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 February: Technology Seed / Mac Tech Seed Feb '97.toast / ODF Release 3 / ODFDev / Container / Sources / Commands.h < prev    next >
Encoding:
Text File  |  1996-12-16  |  8.0 KB  |  305 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                Commands.h
  4. //    Release Version:    $ ODF 3 $
  5. //
  6. //    Copyright:            (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9.  
  10. #ifndef COMMANDS_H
  11. #define COMMANDS_H
  12.  
  13. // ----- FrameWork Includes -----
  14.  
  15. #ifndef FWCMD_H
  16. #include "FWCmd.h"
  17. #endif
  18.  
  19. #ifndef FWCLPCMD_H
  20. #include "FWClpCmd.h"
  21. #endif
  22.  
  23. #ifndef FWDRCMD_H
  24. #include "FWDrCmd.h"
  25. #endif
  26.  
  27. #ifndef FWINSCMD_H
  28. #include "FWInsCmd.h"
  29. #endif
  30.  
  31. #ifndef FWRECT_H
  32. #include "FWRect.h"
  33. #endif
  34.  
  35. #ifndef FWCOLOR_H
  36. #include "FWColor.h"
  37. #endif
  38.  
  39. //========================================================================================
  40. //    Forward Declarations
  41. //========================================================================================
  42.  
  43. class FW_CFrame;
  44.  
  45. class CContainerPart;
  46. class CContainerFrame;
  47. class CContainerSelection;
  48. class CBaseContent;
  49. class CUndoContent;
  50.  
  51. //========================================================================================
  52. //     Constants - Command numbers
  53. //========================================================================================
  54.  
  55. const ODCommandID cResizeCommand        = 3006;
  56. const ODCommandID cViewAsCommand        = 3007;
  57.  
  58.  
  59. //========================================================================================
  60. // CClipboardCommand
  61. //========================================================================================
  62.  
  63. class CClipboardCommand : public FW_CClipboardCommand
  64. {
  65. public:
  66.  
  67.       FW_DECLARE_AUTO(CClipboardCommand)
  68.  
  69.     CClipboardCommand(Environment* ev, 
  70.                       ODCommandID commandID,
  71.                       CContainerPart* part, 
  72.                       CContainerFrame* frame, 
  73.                       CContainerSelection* selection,
  74.                       FW_Boolean canUndo);
  75.  
  76.     virtual ~ CClipboardCommand();
  77.  
  78.     // --- FW_CCommand overrides
  79.     virtual void         UndoIt(Environment* ev);
  80.     virtual void         RedoIt(Environment* ev);
  81.     virtual void         SaveUndoState(Environment* ev);
  82.     virtual void         SaveRedoState(Environment* ev);
  83.     virtual void         FreeUndoState(Environment* ev);
  84.  
  85.     // ----- FW_CClipboardCommand overrides -----
  86.     virtual void        PreCommand(Environment* ev);
  87.     virtual void         CommandDone(Environment* ev);
  88.  
  89. private:
  90.     CContainerPart*            fContainerPart;
  91.     CContainerSelection*    fContainerSelection;
  92.     CUndoContent*            fUndoContent;
  93. };
  94.  
  95. //========================================================================================
  96. // class CDragCommand - for dragging
  97. //========================================================================================
  98.  
  99. class CDragCommand : public FW_CDragCommand
  100. {
  101.   public:
  102.  
  103.       FW_DECLARE_AUTO(CDragCommand)
  104.  
  105.     CDragCommand(Environment* ev, 
  106.                  CContainerPart* part,
  107.                  FW_CFrame* frame,
  108.                  CContainerSelection* selection,
  109.                  FW_Boolean canUndo);
  110.  
  111.     virtual ~CDragCommand();
  112.  
  113.     // --- FW_CCommand overrides
  114.     virtual void         UndoIt(Environment* ev);
  115.     virtual void         RedoIt(Environment* ev);
  116.     virtual void         SaveUndoState(Environment* ev);
  117.     
  118.  
  119.   protected:
  120.     CContainerPart*            fContainerPart;
  121.     CContainerSelection*    fContainerSelection;
  122.     CUndoContent*            fDraggedContent;
  123.     ODShape*                fUpdateShape;
  124. };
  125.  
  126. //========================================================================================
  127. // class CDropCommand - for dropping
  128. //========================================================================================
  129.  
  130. class CDropCommand : public FW_CDropCommand
  131. {
  132.   public:
  133.  
  134.       FW_DECLARE_AUTO(CDropCommand)
  135.  
  136.     CDropCommand(Environment* ev, 
  137.                  CContainerPart* itsPart,
  138.                  FW_CFrame* frame,
  139.                  ODDragItemIterator* dropInfo, 
  140.                  ODFacet* facet, 
  141.                  const FW_CPoint& windowPoint,
  142.                  FW_Boolean canUndo);
  143.  
  144.     virtual ~ CDropCommand();
  145.  
  146.     // --- FW_CCommand overrides
  147.     virtual void UndoIt(Environment* ev);
  148.     virtual void RedoIt(Environment* ev);
  149.     virtual void SaveRedoState(Environment* ev);
  150.     virtual void FreeUndoState(Environment* ev);
  151.  
  152.     // --- FW_CDropCommand overrides
  153.     virtual FW_Boolean DoDrop(Environment* ev, 
  154.                             ODStorageUnit* dropSU, 
  155.                             const FW_CPoint& mouseDownOffset, 
  156.                             const FW_CPoint& dropPoint, 
  157.                             FW_Boolean isDropMove,
  158.                             short itemNumber);
  159.     virtual FW_Boolean DoDroppedInSameFrame(Environment* ev, 
  160.                             ODStorageUnit* dropSU, 
  161.                             const FW_CPoint& mouseDownOffset, 
  162.                             const FW_CPoint& dropPoint);
  163.  
  164.   private:
  165.     void OffsetSelection(Environment* ev, const FW_CPoint& delta);
  166.     void RestoreDroppedProxies(Environment* ev);
  167.  
  168.   private:
  169.     CContainerPart*            fContainerPart;
  170.     CContainerSelection*    fContainerSelection;
  171.     FW_CPoint                fDropDelta;
  172.     CUndoContent*            fDroppedContent;
  173. };
  174.  
  175. //========================================================================================
  176. // CInsertCommand
  177. //========================================================================================
  178.  
  179. class CInsertCommand : public FW_CInsertCommand
  180. {
  181.   public:
  182.  
  183.       FW_DECLARE_AUTO(CInsertCommand)
  184.  
  185.     CInsertCommand(Environment* ev, 
  186.                     CContainerFrame* frame, 
  187.                     const FW_PFileSpecification& fileSpec, 
  188.                     CContainerSelection* selection,
  189.                     FW_Boolean canUndo);
  190.     virtual ~CInsertCommand();
  191.  
  192.     // --- FW_CCommand overrides
  193.     virtual void         UndoIt(Environment* ev);
  194.     virtual void         RedoIt(Environment* ev);
  195.     virtual void         SaveRedoState(Environment* ev);
  196.     
  197.  
  198.   public:
  199.     virtual void        PreCommand(Environment* ev);
  200.     virtual void         CommandDone(Environment* ev);
  201.  
  202.   private:
  203.     CContainerSelection*    fContainerSelection;
  204.     CUndoContent*            fUndoContent;
  205. };
  206.  
  207. //========================================================================================
  208. // class CResizeCommand - Change size of selected proxies
  209. //========================================================================================
  210.  
  211. class CResizeCommand : public FW_CCommand
  212. {
  213.   public:
  214.   
  215.       FW_DECLARE_AUTO(CResizeCommand)
  216.  
  217.     CResizeCommand (Environment* ev, 
  218.                     CContainerPart* part,
  219.                     FW_CFrame* frame,
  220.                     CContainerSelection* selection,
  221.                     const FW_CRect& srcRect,
  222.                     const FW_CRect& dstRect);
  223.  
  224.     virtual ~ CResizeCommand();
  225.  
  226.     // --- Command overrides
  227.     virtual void DoIt(Environment* ev);
  228.     virtual void UndoIt(Environment* ev);
  229.     virtual void RedoIt(Environment* ev);
  230.  
  231.   private:
  232.     void ResizeProxies(Environment* ev, const FW_CRect& srcRect, const FW_CRect& dstRect);
  233.     void Redraw(Environment* ev, ODDoneState doneState);
  234.  
  235.   protected:
  236.     CContainerPart*            fContainerPart;
  237.     CContainerSelection*    fContainerSelection;
  238.     FW_CRect                fSourceRect;
  239.     FW_CRect                fDestRect;
  240.     ODShape*                fUpdateShape;
  241.     CBaseContent*            fChangedContent;
  242. };
  243.  
  244. //========================================================================================
  245. // class CViewAsCommand - Change view as of selected proxies
  246. //========================================================================================
  247.  
  248. class CViewAsCommand : public FW_CCommand
  249. {
  250.   public:
  251.   
  252.       FW_DECLARE_AUTO(CViewAsCommand)
  253.  
  254.     CViewAsCommand (Environment* ev, 
  255.                     CContainerPart* part,
  256.                     FW_CFrame* frame,
  257.                     CContainerSelection* selection,
  258.                     ODTypeToken newViewAs);
  259.  
  260.     virtual ~CViewAsCommand();
  261.  
  262.     // --- Command overrides
  263.     virtual void DoIt(Environment* ev);
  264.     virtual void UndoIt(Environment* ev);
  265.     virtual void RedoIt(Environment* ev);
  266.  
  267.   private:
  268.     void ChangeEmbeddedViewAs(Environment* ev, FW_Boolean undo);
  269.     void Redraw(Environment* ev);
  270.  
  271.   protected:
  272.     CContainerPart*            fContainerPart;
  273.     CContainerSelection*    fContainerSelection;
  274.     ODTypeToken                fNewViewAs;
  275.     CBaseContent*            fChangedContent;
  276.     ODTypeToken*            fOldViewAs;
  277.     ODShape*                fUpdateShape;
  278. };
  279.  
  280. //========================================================================================
  281. // CSetBackgroundColorCommand
  282. //========================================================================================
  283.  
  284. class CSetBackgroundColorCommand : public FW_CCommand
  285. {
  286. public:
  287.     FW_DECLARE_AUTO(CSetBackgroundColorCommand)
  288.     
  289.     CSetBackgroundColorCommand(Environment* ev,
  290.                             CContainerPart* part,
  291.                             FW_CColor& newBackgroundColor);
  292.     virtual ~CSetBackgroundColorCommand();
  293.     
  294.     virtual void DoIt(Environment* ev);
  295.     virtual void UndoIt(Environment* ev);
  296.     virtual void RedoIt(Environment* ev);
  297.  
  298. private:
  299.     CContainerPart* fContainerPart;
  300.     FW_CColor         fOldColor;
  301.     FW_CColor        fNewColor;
  302. };
  303.  
  304.  
  305. #endif